package com.csap.framework.apidoc.admin.service;

import com.csap.framework.annotation.apidoc.Description;
import com.csap.framework.apidoc.admin.entity.ApiDocEntity;
import com.csap.framework.apidoc.admin.model.ApiDocPathModel;
import com.csap.framework.apidoc.admin.model.PushSuccess;
import com.csap.framework.apidoc.admin.model.freemark.ConfigModel;
import com.csap.mybatisplus.extension.service.BaseCsapService;
import com.csap.framework.apidoc.admin.model.ApiDocModel;

import java.util.List;

/**
 * <p>
 * 文档管理信息
 * </p>
 *
 * @author
 * @dateTime
 */
@Description(value = "文档管理信息Service")
public interface ApiDocService extends BaseCsapService<ApiDocEntity, ApiDocModel, Long> {

    /**
     * 刷新文档
     *
     * @param docIds 需要刷新的文档ID列表
     * @return 是否刷新成功
     */
    Boolean flushDoc(List<Long> docIds);

    /**
     * 写入文档配置
     *
     * @param configModelList
     */
    void writeDocConfig(List<ConfigModel> configModelList);

    /**
     * 循环文档
     *
     * @param docModel
     * @return
     */
    ApiDocPathModel foreachDoc(ApiDocPathModel docModel);


    /**
     * 发布文档
     * @param id 文档ID
     */
    String publishDoc(Long id);

    /**
     * 发布文档是否成功
     *
     * @return
     */
    PushSuccess publishSuccess(String id);
}
